史上最全Linux常用指令汇总,又一吃灰教程
开发人员,必不可少的需要和Linux打交道,这里整理了经常会用到的一些Linux操作指令,能快速帮你熟悉并操作Linux服务器
;
本教程会在后续的使用中持续更新
,因公众号文章,发了之后无法修改,最新更新请关注:https://lupf.cn/articles/2020/12/22/1608639406803.html
文件
文件夹操作
查看当前所在目录
pwd
查看目录下文件
ls -a
ll # 以列表形式显示目录下文件打开目录
cd /user/local #从根目录开始进入到/user/local目录
cd local #从当前目录开始,进入到local目录
cd .. #返回到上级目录创建文件夹
mkdir /user/local/user # 从根目录开始,创建/user/local/user,此操作必须/user/local存在
mkdir -p /user/local/user # 创建目录,任何一级的目录不存在,都会创建删除文件
rm -ri /test #删除根目录下的test;此操作会引导用户确认;输入y回车删除
rm -rf /test #直接删除,不需要再次确认移动或修改文件名
mv /test1 /test2 # 将test1移动到test2 也可以理解为重命名为test2
本地拷贝
cp -rf /test /user/local # 将根目录下的test拷贝到/user/local
远程拷贝
scp -rf /test root@192.168.1.123:/user/local
# 将本机根目录下的test目录拷贝到192.168.1.123的/user/local目录下
# root为192.168.1.123的用户名;回车之后需要输入密码
# 如果设置了免密登录,会直接拷贝过去
文件查看
查看前n行内容
head -n /testfile # n为要查询的行数 如 head -3 /testfile,表示查询testfile的前三行
查看后n行内容
tail -n /testfile # n 和上面的意思一样
cat输出文件的所有内容
cat /testfile
查看文件实时更新
tail -f /testfile # 文件的更新会实时展示出来
输出内容到文件
echo "输出内容" >> /testfile # 追加内容到文件后面
echo "输出内容" > /testfile # 覆盖原有内容
文件压缩解压
tar.gz
解压
tar -zxvf filename.tar.gz
压缩
tar –czf filename.tar.gz filename.txt
tar.bz2
解压
tar -jxvf filename.tar.bz2
压缩
tar –cjf filename.tar.bz2 filename.txt
tar
解压
tar –xvf filename.tar
压缩
tar –cvf filename.tar filename.txt
tar.Z
解压
tar –xZvf filename.tar.Z
压缩
tar –cZf filename.tar.Z filename.txt
rar
需要先安装rar
解压
unrar e filename.rar
压缩
rar a filename.rar filename.txt
zip
需要先安装zip
解压
unzip filename.zip
压缩
zip filename.zip filename.txt
文件查找
根据名称查找
find / -name testfile
文件编辑
编辑文件
vi /testfile # 开始编辑testfile
进入编辑模式
i
insert
# 按键盘i或者insert会进入编辑模式,左下角会有个--insert--退出编辑模式
按esc即可退出编辑模式,退出后上图显示的insert会消失
进入命令行模式
# 非编辑模式下使用shift加:(英文模式下)进入命令行
shift + :关键词查找
查找文件中的关键词
:/要查找的关键词 #如要查找34
按n会往下查找下一个
按shift + n往上查找上一个 n和shift + n都是滚动查询的保存并退出(命令行模式下)
wq
强制保存并退出(慎用)
多人同时操作的时候,wq保存会失败,可以使用强制保存
wq!
强制退出放弃修改(慎用)
q!
文件内复制粘贴
终端下
ctrl + shift + c # 复制
ctrl + shift + v # 粘贴在控制台
ctrl + insert # 复制
shift + insert # 粘贴
服务
查询某个服务的进程
如查询java
ps -ef | grep java
服务操作;开启、暂停、重启、自启动等
systemctl start docker.service #启动一个服务
systemctl stop docker.service #关闭一个服务
systemctl restart docker.service # 重启一个服务
systemctl status docker.service # 显示一个服务的状态
systemctl enable docker.service # 在开机时启用一个服务
systemctl disable docker.service # 在开机时禁用一个服务
systemctl is-enabled docker.service # 查看服务是否开机启动
systemctl list-unit-files|grep enabled # 查看已启动的服务列表
systemctl --failed # 查看启动失败的服务列表杀掉某个进程
kill -9 进程号 # 如上可以使用kill -9 2336 即可杀掉2336对应的java进程
服务端口查看
查看端口监听情况
ss -tnl
端口查进程
ss -lnp | grep 80
使用net-tools查看端口
yum install -y net-tools
netstat -tunl | grep ':80'
netstat -tunlp
netstat -apn | grep ':80'
netstat -ntu 查看连接数
netstat -nat|grep -i "80"|wc -l
定时任务
crontab说明
crontab [-u username]
-e (编辑定时任务)
-l (列出定时任务里的命令)
-r (删除定时任务)
定时任务格式
格式
* * * * * command
分 时 日 月 周 指令操作符
星
*
取值范围内的所有数字
斜杠
/
每过多少个数字
横杠
-
从X到Z
逗号
,
散列数字
示例
示例1:每1分钟执行一次执行
* * * * * echo "hello" >> /test/hello.txt
示例2:每小时的第3和第15分钟执行
3,15 * * * * echo "hello" >> /test/hello.txt
示例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * echo "hello" >> /test/hello.txt
示例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * echo "hello" >> /test/hello.txt
示例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 echo "hello" >> /test/hello.txt
示例6:每晚的21:30执行
30 21 * * * echo "hello" >> /test/hello.txt
示例7:每月1、10、22日的4 : 45执行
45 4 1,10,22 * * echo "hello" >> /test/hello.txt
示例8:每周六、周日的1 : 10执行
10 1 * * 6,0 echo "hello" >> /test/hello.txt
示例9:每天18 : 00至23 : 00之间每隔30分钟执行
0,30 18-23 * * * echo "hello" >> /test/hello.txt
示例10:每星期六的晚上11 : 00 pm执行
0 23 * * 6 echo "hello" >> /test/hello.txt
示例11:每一小时执行
* */1 * * * echo "hello" >> /test/hello.txt
示例12:晚上11点到早上7点之间,每隔一小时执行
* 23-7/1 * * * echo "hello" >> /test/hello.txt
注意事项
目录创建
如上示例中,如果出现文件夹的输出,那么文件夹必须存在
指令
环境变量中的指令手动执行的时候,可以快捷输入,但定时任务就必须输入全路径
权限
权限定义
-rw-r--r--. 1 root root 4 Dec 22 18:28 /testfile
[rw-] [r--] [r--]
文件所有者的权限 文件所在组的权限 其他组的权限
用户组操作
useradd #用于创建用户
groupadd #用于创建组
usermod #用于修改用户属性
权限说明
文件夹
r # 只能读取文件列表
w # 没有任何作用
x # 可以进入目录
rw # 可以读文件列表,依旧无法删除文件
rx # 读取文件列表,可以cd进mul,但是无法删除目录下的文件,对文件有w权限可以清空或者写入
wx # 可以增加和删除目录中文件,可以cd进目录,但是无法查看目录有哪些内容,知道文件名可以打开文件
rwx # 可以进入目录,显示目录中内容,可以增删目录中文件文件
r # 读取文件内容
w # 写入
x # 执行,单独的执行权限只能运行二进制可执行文件
rw # 可读可写
rx # 可以执行二进制之外的编译类或者脚本类的文件
wx # 可以修改内容,无法查看,可以执行二进制可执行文件
rwx # 可以查看文件内容,可以增删文件内容,可以执行可执行文件
数字权限说明
r : 4
w : 2
x : 1
权限拆解
[-rwxrwxrwx]
[r w x] [r w x] [r w x]
[4+2+1] [4+2+1] [4+2+1] ==> 权限值为:777
[-rwxr-xr--]
[r w x] [r - x] [r - -]
[4+2+1] [4+0+1] [4+0+0] ==> 权限值为:754
设置权限
chmod 777 /testfile # 其中777为根据上面的数字权限方式计算出来的
机器相关
cpu
查看CPU个数
查看物理CPU的个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU的个数
cat /proc/cpuinfo |grep "processor"|wc -l
查看CPU核数
cat /proc/cpuinfo | grep "cpu cores" | uniq
查看CPU型号
cat /proc/cpuinfo | grep 'model name' |uniq
查看CPU的主频
cat /proc/cpuinfo |grep MHz|uniq
查看CentOS版本
cat /etc/redhat-release
查看操作系统内核版本
cat /proc/version
查看bios信息
dmidecode -t bios
内存
查看内存总数
cat /proc/meminfo | grep MemTotal
查看内存条数
dmidecode | grep -A16 "Memory Device$"
磁盘
查看硬盘大小
fdisk -l | grep Disk
查看磁盘占用
查看整个磁盘占用全款
df -h
查看当前所处目录的磁盘占用
du -h --max-depth=1
按空间占用排序
du -s * | sort -nr | head 选出排在前面的10个
du -s * | sort -nr | tail 选出排在后面的10个
网卡
查看网卡硬件信息
lspci | grep -i 'eth'
查看系统的所有网络接口
ip addr
时间
查看时间
date
更新时间
# 安装ntpdate
yum install -y ntpdate
# 更新时间
ntpdate 0.asia.pool.ntp.org
# 将系统时间同步到硬件,防止系统重启后时间被还原
hwclock --systohc
其他更多操作
以下命令也是比较常用的,可根据需要使用
uname -a # 查看内核/操作系统/CPU信息的linux系统信息
head -n l /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名的linux系统信息命令
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备的linux系统信息命令
lsmod # 列出加载的内核模块
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息进程
ps -ef # 查看所有进程
top # 实时显示进程状态用户
w # 查看活动用户
id # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务服务
chkconfig –list # 列出所有系统服务
chkconfig –list | grep on # 列出所有启动的系统服务程序
rpm -qa # 查看所有安装的软件包
cat /proc/cpuinfo # 查看CPU相关参数的linux系统命令
cat /proc/partitions # 查看linux硬盘和分区信息的系统信息命令
cat /proc/meminfo # 查看linux系统内存信息的linux系统命令
cat /proc/version # 查看版本,类似uname -r
cat /proc/ioports # 查看设备io端口
cat /proc/interrupts # 查看中断
cat /proc/pci # 查看pci设备的信息
cat /proc/swaps # 查看所有swap分区的信息
部分内容参考于: dwz-9.cn/0S8fS
End
---- 推荐阅读 ----